Many integrated circuits are designed using computer-aided design (“CAD”) programs running on a workstation. The designer typically selects electronic components for the integrated circuit through a graphical user interface (“GUI”), which includes a graphical display screen and a computer mouse or similar pointing device, familiar to those of ordinary skill in the art.
The electronic components are represented graphically by the CAD program on the graphical display screen. To position the electronic component within the part of the integrated circuit's schematic that is displayed on the screen, the designer “drags” the graphical symbol for the component to a position on the screen using the mouse. The designer “drops” the graphical symbol for the electronic component at the desired position on the screen and connects the graphical representation of the terminals of the electronic component to the terminals of other electronic components displayed on the screen. Connecting the graphical representation of the terminals in the GUI represents forming an electrical connection between the components on the designed integrated circuit.
Upon completing or editing the schematic for the part of the integrated circuit that is being designed, the designer may save the schematic as a circuit block. The circuit block consolidates the components in the schematic into a single entity for use within the CAD program. The designer assigns alphanumeric strings to the inputs and outputs of the circuit block for identifying the inputs/outputs, and also assigns an alphanumeric string to the circuit block as a name that identifies the circuit block. The circuit block may be added to a library of circuit blocks, catalogued by the assigned alphanumeric names, and represented as a circuit block on the GUI. Thereafter, the designer may connect the circuit blocks using the GUI in the same manner as with individual components by interconnecting the inputs and outputs of the circuit blocks.
Circuit blocks may be combined to form higher level circuit blocks resulting in a hierarchy of circuit blocks available to the designer. For example, an arithmetic processor circuit block may comprise at least one binary adder circuit block. The binary adder circuit block in turn may comprise multiple XOR logic gate components. The XOR logic gate components may comprise multiple NAND logic gate components, which in turn comprise multiple Complementary Metal Oxide Semiconductor (“CMOS”) transistors. The designer typically stores the hierarchy of circuit blocks in a schematic database.
The CAD program may also create a graphical representation of the masks that are used in projection lithography to lay out the transistors and interconnections of the circuit blocks on a substrate for the integrated circuit. Alternatively the CAD program may control an electron-beam lithographic device to directly draw the masks on the integrated circuit substrate. The masks sequentially form layers of the semiconductor structures of the individual transistors on the substrate.
As manufacturing technology develops, a circuit designed originally in older technology may be reused as a circuit in the newer technology. Importing the schematic from one database to another saves designing the schematic from scratch in the new technology. For example, when designing an arithmetic processor for an integrated circuit that is to be built according to 140 nm CMOS technology, the designer may reuse the schematic for the processor from the schematic database for 170 nm CMOS technology. (The 140 nm and 170 nm refer to the minimum feature size on the respective technologies.) The schematic databases for 140 nm and 170 nm technology may differ in several ways, not the least of which is that the graphical representations of the masks for 140 nm technology typically include smaller semiconductor structures than the respective structures in 170 nm technology.
Moreover, some integrated circuits may include CMOS structures according to both technologies. For example, an integrated circuit may use 140 nm CMOS transistors in most circuit blocks, but use 170 nm CMOS transistors for components that are required to operate at a higher voltage than the 140 nm transistors. The schematics for such circuit blocks require distinguishable graphical symbols for the components of each structure size in order to clearly identify the 140 nm components and the 170 nm components. Therefore each structure size may have distinguishable graphical symbols and parameters associated with the symbols, such as the transistor gate thickness or the maximum drain-to-source voltage.
Transferring a design for an electronic circuit block from the schematic databases for one technology to the schematic database for another technology may lead to mismatches between the symbols and/or parameters. Additionally, different teams that are jointly developing the same design may use different schematic databases, leading to further mismatches when transferring designs between the schematic databases. The process of transferring designs between different schematic databases is termed “schematic migration” by those of ordinary skill in the art. Moreover, a schematic database may not contain a graphical symbol for a particular component, which hinders the effective transfer of a design to this schematic database if the design includes the particular component. Therefore there is a need for a method for resolving missing graphical symbols in CAD programs during schematic migration.